home *** CD-ROM | disk | FTP | other *** search
- package sun.tools.tree;
-
- import java.io.PrintStream;
- import java.util.Hashtable;
- import sun.tools.asm.Assembler;
- import sun.tools.java.ClassNotFound;
- import sun.tools.java.Constants;
- import sun.tools.java.Environment;
- import sun.tools.java.Type;
-
- public class DeclarationStatement extends Statement {
- int mod;
- Expression type;
- Statement[] args;
-
- public DeclarationStatement(int var1, int var2, Expression var3, Statement[] var4) {
- super(107, var1);
- this.mod = var2;
- this.type = var3;
- this.args = var4;
- }
-
- long check(Environment var1, Context var2, long var3, Hashtable var5) {
- try {
- var3 = ((Statement)this).reach(var1, var3);
- Type var6 = this.type.toType(var1, var2);
- var1.resolve(super.where, var2.field.getClassDefinition(), var6);
-
- for(int var7 = 0; var7 < this.args.length; ++var7) {
- var3 = this.args[var7].checkDeclaration(var1, var2, var3, this.mod, var6, var5);
- }
- } catch (ClassNotFound var8) {
- var1.error(super.where, "class.not.found", var8.name, Constants.opNames[super.op]);
- }
-
- return var3;
- }
-
- public Statement inline(Environment var1, Context var2) {
- int var3 = 0;
-
- for(int var4 = 0; var4 < this.args.length; ++var4) {
- if ((this.args[var4] = this.args[var4].inline(var1, var2)) != null) {
- ++var3;
- }
- }
-
- if (var3 == 0) {
- return null;
- } else {
- return this;
- }
- }
-
- public void code(Environment var1, Context var2, Assembler var3) {
- for(int var4 = 0; var4 < this.args.length; ++var4) {
- if (this.args[var4] != null) {
- this.args[var4].code(var1, var2, var3);
- }
- }
-
- }
-
- public void print(PrintStream var1, int var2) {
- var1.print("declare ");
- super.print(var1, var2);
- this.type.print(var1);
- var1.print(" ");
-
- for(int var3 = 0; var3 < this.args.length; ++var3) {
- if (var3 > 0) {
- var1.print(", ");
- }
-
- if (this.args[var3] != null) {
- this.args[var3].print(var1);
- } else {
- var1.print("<empty>");
- }
- }
-
- var1.print(";");
- }
- }
-